让出当前协程的执行权。
function Coroutine::yield();
此方法拥有另外一个别名:
Coroutine::suspend()
必须与Coroutine::resume()
方法成对使用。该协程yield
以后,必须由其他外部协程resume
,否则将会造成协程泄漏,被挂起的协程永远不会执行。
$cid = go(function () {
echo "co 1 start\n";
co::yield();
echo "co 1 end\n";
});
go(function () use ($cid) {
echo "co 2 start\n";
co::sleep(0.5);
co::resume($cid);
echo "co 2 end\n";
});